home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 October: Mac OS SDK / Dev.CD Oct 96 SDK / Dev.CD Oct 96 SDK2.toast / Development Kits (Disc 2) / OpenDoc Development Framework / ODFDev / ODF / Framewrk / FWPart / Include / FWLnkIte.h < prev    next >
Encoding:
Text File  |  1996-08-16  |  3.9 KB  |  138 lines  |  [TEXT/MPS ]

  1. //========================================================================================
  2. //
  3. //    File:                FWLnkIte.h
  4. //    Release Version:    $ ODF 1 $
  5. //
  6. //    Copyright:    (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
  7. //
  8. //========================================================================================
  9. //
  10. //    This file contains the following iterators
  11. //
  12. //        - FW_CPartLinkSourceIterator
  13. //
  14. //        - FW_CPartLinkDestIterator
  15. //
  16.  
  17. #ifndef FWLNKITE_H
  18. #define FWLNKITE_H
  19.  
  20. #ifndef FWSTDDEF_H
  21. #include "FWStdDef.h"
  22. #endif
  23.  
  24. #ifndef FWEXCLIB_H
  25. #include "FWExcLib.h"
  26. #endif
  27.  
  28. #ifndef FWLINK_H
  29. #include "FWLink.h"
  30. #endif
  31.  
  32. #ifndef FWLNKDST_H
  33. #include "FWLnkDst.h"
  34. #endif
  35.  
  36. #ifndef FWLNKSRC_H
  37. #include "FWLnkSrc.h"
  38. #endif
  39.  
  40. #ifndef FWPART_H
  41. #include "FWPart.h"
  42. #endif
  43.  
  44. #ifndef FWLNKMGR_H
  45. #include "FWLnkMgr.h"
  46. #endif
  47.  
  48. #ifndef FWORDCOL_H
  49. #include "FWOrdCol.h"
  50. #endif
  51.  
  52. //========================================================================================
  53. //    Forward Declarations
  54. //========================================================================================
  55.  
  56. class FW_CPart;
  57.  
  58. //========================================================================================
  59. //    class FW_CPartLinkSourceIterator
  60. //========================================================================================
  61.  
  62. class FW_CPartLinkSourceIterator : public FW_TOrderedCollectionIterator<FW_CLinkSource>
  63. {
  64. public:
  65.     FW_DECLARE_AUTO(FW_CPartLinkSourceIterator)
  66.  
  67.     FW_CPartLinkSourceIterator(const FW_CPart* part) :
  68.         FW_TOrderedCollectionIterator<FW_CLinkSource>(part->fLinkManager ? part->fLinkManager->fSourceLinkList : NULL) {}
  69.     ~FW_CPartLinkSourceIterator() {}
  70. };
  71.  
  72. //========================================================================================
  73. //    class FW_CPartLinkDestIterator
  74. //========================================================================================
  75.  
  76. class FW_CPartLinkDestIterator : public FW_TOrderedCollectionIterator<FW_CLinkDestination>
  77. {
  78. public:
  79.     FW_DECLARE_AUTO(FW_CPartLinkDestIterator)
  80.  
  81.     FW_CPartLinkDestIterator(const FW_CPart* part) :
  82.         FW_TOrderedCollectionIterator<FW_CLinkDestination>(part->fLinkManager ? part->fLinkManager->fDestLinkList : NULL) {}
  83.     ~FW_CPartLinkDestIterator() {}
  84. };
  85.  
  86. //========================================================================================
  87. //    class FW_CLinkMgrLinkSourceIterator
  88. //========================================================================================
  89.  
  90. class FW_CLinkMgrLinkSourceIterator : public FW_TOrderedCollectionIterator<FW_CLinkSource>
  91. {
  92. public:
  93.     FW_DECLARE_AUTO(FW_CLinkMgrLinkSourceIterator)
  94.  
  95.     FW_CLinkMgrLinkSourceIterator(const FW_CLinkManager* linkMgr) :
  96.         FW_TOrderedCollectionIterator<FW_CLinkSource>(linkMgr->fSourceLinkList) {}
  97.     ~FW_CLinkMgrLinkSourceIterator() {}
  98. };
  99.  
  100. //========================================================================================
  101. //    class FW_CLinkMgrLinkDestIterator
  102. //========================================================================================
  103.  
  104. class FW_CLinkMgrLinkDestIterator : public FW_TOrderedCollectionIterator<FW_CLinkDestination>
  105. {
  106. public:
  107.     FW_DECLARE_AUTO(FW_CLinkMgrLinkDestIterator)
  108.  
  109.     FW_CLinkMgrLinkDestIterator(const FW_CLinkManager* linkMgr) :
  110.         FW_TOrderedCollectionIterator<FW_CLinkDestination>(linkMgr->fDestLinkList) {}
  111.     ~FW_CLinkMgrLinkDestIterator() {}
  112. };
  113.  
  114. //========================================================================================
  115. //    class FW_CLinkIterator
  116. //========================================================================================
  117.  
  118. class FW_CLinkIterator
  119. {
  120.   public:
  121.     FW_DECLARE_AUTO(FW_CLinkIterator)
  122.     
  123.     FW_CLinkIterator(FW_CLinkManager* linkMgr);
  124.     ~FW_CLinkIterator();
  125.  
  126.     FW_CLink*        FirstLink();
  127.     FW_CLink*        NextLink();
  128.     FW_Boolean        IsNotComplete();
  129.                             
  130.   private:
  131.     FW_CLinkMgrLinkSourceIterator    fFirstIterator;
  132.     FW_CLinkMgrLinkDestIterator        fSecondIterator;
  133.     FW_CLink*        fCurrentLink;
  134.     FW_Boolean        fIteratingSecondList;
  135. };
  136.  
  137. #endif
  138.